package com.bbva.kyfb.kyfbdaohostimpl.sistemasHost;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.bbva.jee.arq.spring.core.gce.ExcepcionEjecucionAplicacion;
import com.bbva.jee.arq.spring.core.host.ExcepcionTransaccion;
import com.bbva.kyfb.kyfbdaohost.sistemasHost.AccesoSistemasHost;
import com.bbva.kyfb.kyfbdaohostimpl.converters.DtoTransaccionConverter;
import com.bbva.kyfb.kyfbdaohostimpl.converters.TransaccionDtoConverter;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.inmft010_1_1_4.PeticionTransaccionInmft010_1_1_4;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.inmft010_1_1_4.RespuestaTransaccionInmft010_1_1_4;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.inmft010_1_1_4.TransaccionInmft010_1_1_4;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt298_1_1_1.PeticionTransaccionTlsmt298_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt298_1_1_1.RespuestaTransaccionTlsmt298_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt298_1_1_1.TransaccionTlsmt298_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt592_1_1_1.PeticionTransaccionTlsmt592_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt592_1_1_1.RespuestaTransaccionTlsmt592_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt592_1_1_1.TransaccionTlsmt592_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt761_1_1_1.PeticionTransaccionTlsmt761_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt761_1_1_1.RespuestaTransaccionTlsmt761_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt761_1_1_1.TransaccionTlsmt761_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt762_1_1_1.PeticionTransaccionTlsmt762_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt762_1_1_1.RespuestaTransaccionTlsmt762_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt762_1_1_1.TransaccionTlsmt762_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt763_1_1_1.PeticionTransaccionTlsmt763_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt763_1_1_1.RespuestaTransaccionTlsmt763_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt763_1_1_1.TransaccionTlsmt763_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt764_1_1_1.PeticionTransaccionTlsmt764_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt764_1_1_1.RespuestaTransaccionTlsmt764_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt764_1_1_1.TransaccionTlsmt764_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt765_1_1_1.PeticionTransaccionTlsmt765_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt765_1_1_1.RespuestaTransaccionTlsmt765_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt765_1_1_1.TransaccionTlsmt765_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt766_1_1_1.PeticionTransaccionTlsmt766_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt766_1_1_1.RespuestaTransaccionTlsmt766_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt766_1_1_1.TransaccionTlsmt766_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt767_1_1_1.PeticionTransaccionTlsmt767_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt767_1_1_1.RespuestaTransaccionTlsmt767_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt767_1_1_1.TransaccionTlsmt767_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt768_1_1_1.PeticionTransaccionTlsmt768_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt768_1_1_1.RespuestaTransaccionTlsmt768_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt768_1_1_1.TransaccionTlsmt768_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_1.PeticionTransaccionTlsmt775_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_1.RespuestaTransaccionTlsmt775_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_1.TransaccionTlsmt775_1_1_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_2.PeticionTransaccionTlsmt775_1_1_2;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_2.RespuestaTransaccionTlsmt775_1_1_2;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_2.TransaccionTlsmt775_1_1_2;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_3.PeticionTransaccionTlsmt775_1_1_3;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_3.RespuestaTransaccionTlsmt775_1_1_3;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_1_3.TransaccionTlsmt775_1_1_3;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_2_1.PeticionTransaccionTlsmt775_1_2_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_2_1.RespuestaTransaccionTlsmt775_1_2_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_2_1.TransaccionTlsmt775_1_2_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_3_1.PeticionTransaccionTlsmt775_1_3_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_3_1.RespuestaTransaccionTlsmt775_1_3_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_3_1.TransaccionTlsmt775_1_3_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_3_1.head.TransaccionTlsmt775_1_3_1_Head;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_4_1.PeticionTransaccionTlsmt775_1_4_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_4_1.RespuestaTransaccionTlsmt775_1_4_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_4_1.TransaccionTlsmt775_1_4_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_5_1.PeticionTransaccionTlsmt775_1_5_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_5_1.RespuestaTransaccionTlsmt775_1_5_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_5_1.TransaccionTlsmt775_1_5_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_6_1.PeticionTransaccionTlsmt775_1_6_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_6_1.RespuestaTransaccionTlsmt775_1_6_1;
import com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt775_1_6_1.TransaccionTlsmt775_1_6_1;
import com.bbva.kyfb.kyfbdto.firmas.errores.Errores_kyfb_servicios;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ApoderadoEmpresasFirmInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConfirmacionProcesoOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaAptitudMifidInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaAptitudMifidOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaDatosClienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaSituacionFicherosInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaSituacionFicherosOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarFirmatesFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarFirmatesFicheroOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarNifAutorizadosFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarNifAutorizadosFirmaOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DatosClienteDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DetalleFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DetalleFicheroOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EliminarFicheroPendienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirOutNifDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirOutRefDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirmInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicheroPendienteFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendienteEmpresaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientePorEmpresaNifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientePorEmpresaONifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientesEmpresaONifOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientesEmpresaOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FirmaFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FirmarFicheroPendienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FirmarFicheroPendienteOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaRefNifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaRefNifOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaReferenciaExternaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaReferenciaExternaOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.RegistrarOrdenPendienteFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.UsuariosFirmantesOrdenInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.UsuariosFirmantesOrdenOutDto;
import com.bbva.kyfb.kyfbutils.constantes.ConstantesFO;

/**
 * The Class AccesoSistemasHostImpl.
 *
 * @author xe22570
 */

@Component
public class AccesoSistemasHostImpl implements AccesoSistemasHost {

	/** The transaccion761. */
	@Autowired
	private TransaccionTlsmt761_1_1_1 transaccion761;

	/** The transaccion762. */
	@Autowired
	private TransaccionTlsmt762_1_1_1 transaccion762;

	/** The transaccion298. */
	@Autowired
	private TransaccionTlsmt298_1_1_1 transaccion298;

	/** The transaccion592. */
	@Autowired
	private TransaccionTlsmt592_1_1_1 transaccion592;

	/** The transaccion765. */
	@Autowired
	private TransaccionTlsmt765_1_1_1 transaccion765;

	/** The transaccion775_1_6_1. */
	@Autowired
	private TransaccionTlsmt775_1_6_1 transaccion775_1_6_1;

	/** The transaccion775_1_5_1. */
	@Autowired
	private TransaccionTlsmt775_1_5_1 transaccion775_1_5_1;

	/** The transaccion775_1_4_1. */
	@Autowired
	private TransaccionTlsmt775_1_4_1 transaccion775_1_4_1;

	/** The transaccion775_1_3_1. **/
	@Autowired
	private TransaccionTlsmt775_1_3_1 transaccion775_1_3_1;

//	/** The transaccion775_1_3_1. */
//	@Autowired
//	private TransaccionTlsmt775_1_3_1_Head transaccion775_1_3_1_Head;

	/** The transaccion775_1_2_1. */
	@Autowired
	private TransaccionTlsmt775_1_2_1 transaccion775_1_2_1;

	/** The transaccion775_1_1_3. */
	@Autowired
	private TransaccionTlsmt775_1_1_3 transaccion775_1_1_3;

	/** The transaccion775_1_1_2. */
	@Autowired
	private TransaccionTlsmt775_1_1_2 transaccion775_1_1_2;

	/** The transaccion775_1_1_1. */
	@Autowired
	private TransaccionTlsmt775_1_1_1 transaccion775_1_1_1;

	/** The transaccion768. */
	@Autowired
	private TransaccionTlsmt768_1_1_1 transaccion768;

	/** The transaccion767. */
	@Autowired
	private TransaccionTlsmt767_1_1_1 transaccion767;

	/** The transaccion766. */
	@Autowired
	private TransaccionTlsmt766_1_1_1 transaccion766;

	/** The transaccion764. */
	@Autowired
	private TransaccionTlsmt764_1_1_1 transaccion764;

	/** The transaccion763. */
	@Autowired
	private TransaccionTlsmt763_1_1_1 transaccion763;

	/** The transaccion010_4. */
	@Autowired
	private TransaccionInmft010_1_1_4 transaccion010_4;

	/*
	 **{@inheritDoc}
	 * 
	 * @see com.bbva.kyfb.kyfbdaohost.sistemasHost.AccesoSistemasHost#
	 * consultarEmpresasPendienteFirma
	 * (com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirmInDto)
	 */

	/**
	 * Consultar empresas por referencia.
	 *
	 * @param empresasFirmInDto the empresas firm in dto
	 * @return the empresas fir out ref dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public EmpresasFirOutRefDto consultarEmpresasPorReferencia(
			final EmpresasFirmInDto empresasFirmInDto)
					throws ExcepcionEjecucionAplicacion {
		EmpresasFirOutRefDto empresasFirOutDto = null;
		if (empresasFirmInDto != null) {
			final PeticionTransaccionTlsmt761_1_1_1 peticion = TransaccionDtoConverter
					.EmpresasFirmInDtoToPeticion761(empresasFirmInDto);
			try {
				final RespuestaTransaccionTlsmt761_1_1_1 respuestaTransaccion = transaccion761
						.invocar(peticion);
				empresasFirOutDto = DtoTransaccionConverter
						.RespuestaPeticionEmpresasFirmRefOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return empresasFirOutDto;

	}

	/**
	 * Consultar empresas por nif.
	 *
	 * @param apoderadoEmpresasFirmInDto the apoderado empresas firm in dto
	 * @return the empresas fir out nif dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public EmpresasFirOutNifDto consultarEmpresasPorNif(
			final ApoderadoEmpresasFirmInDto apoderadoEmpresasFirmInDto)
					throws ExcepcionEjecucionAplicacion {
		EmpresasFirOutNifDto empresasFirOutDto = null;
		if (apoderadoEmpresasFirmInDto != null) {
			final PeticionTransaccionTlsmt762_1_1_1 peticion = TransaccionDtoConverter
					.EmpresasFirmInDtoToPeticion762(apoderadoEmpresasFirmInDto);
			try {
				final RespuestaTransaccionTlsmt762_1_1_1 respuestaTransaccion = transaccion762
						.invocar(peticion);
				empresasFirOutDto = DtoTransaccionConverter
						.RespuestaPeticionEmpresasFirmNifOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return empresasFirOutDto;
	}

	/**
	 * Consultar ficheros pendientes por empresa.
	 *
	 * @param ficherosPendienteEmpresaInDto the ficheros pendiente empresa in dto
	 * @return the ficheros pendientes empresa out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public FicherosPendientesEmpresaOutDto consultarFicherosPendientesPorEmpresa(
			final FicherosPendienteEmpresaInDto ficherosPendienteEmpresaInDto)
					throws ExcepcionEjecucionAplicacion {
		FicherosPendientesEmpresaOutDto ficherosPendientesEmpresaOutDto = null;
		if (ficherosPendienteEmpresaInDto != null) {
			final PeticionTransaccionTlsmt763_1_1_1 peticion = TransaccionDtoConverter
					.ConsultaFicherosPendienteInDtoToPeticion763(ficherosPendienteEmpresaInDto);
			try {
				final RespuestaTransaccionTlsmt763_1_1_1 respuestaTransaccion = transaccion763
						.invocar(peticion);
				ficherosPendientesEmpresaOutDto = DtoTransaccionConverter
						.RespuestaPeticionConsultaFicherosPendienteRefOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return ficherosPendientesEmpresaOutDto;
	}

	/**
	 * Consultar ficheros pendientes por empresa nif.
	 *
	 * @param ficherosPendientePorEmpresaNifInDto the ficheros pendiente por empresa nif in dto
	 * @return the ficheros pendientes empresa out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public FicherosPendientesEmpresaOutDto consultarFicherosPendientesPorEmpresaNif(
			final FicherosPendientePorEmpresaNifInDto ficherosPendientePorEmpresaNifInDto)
					throws ExcepcionEjecucionAplicacion {
		FicherosPendientesEmpresaOutDto ficherosPendientesEmpresaNifOutDto = null;
		if (ficherosPendientePorEmpresaNifInDto != null) {
			final PeticionTransaccionTlsmt764_1_1_1 peticion = TransaccionDtoConverter
					.ConsultaFicherosPendienteNifInDtoToPeticion764(ficherosPendientePorEmpresaNifInDto);
			try {
				final RespuestaTransaccionTlsmt764_1_1_1 respuestaTransaccion = transaccion764
						.invocar(peticion);
				ficherosPendientesEmpresaNifOutDto = DtoTransaccionConverter
						.RespuestaPeticionConsultaFicherosPendienteRefNifOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return ficherosPendientesEmpresaNifOutDto;
	}

	/**
	 * Eliminar fichero pendiente firma.
	 *
	 * @param eliminarFicheroPendienteInDto the eliminar fichero pendiente in dto
	 * @return the firmar fichero pendiente out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public FirmarFicheroPendienteOutDto eliminarFicheroPendienteFirma(
			final EliminarFicheroPendienteInDto eliminarFicheroPendienteInDto)
					throws ExcepcionEjecucionAplicacion {
		FirmarFicheroPendienteOutDto eliminarFicheroPendienteOutDto = null;
		if (eliminarFicheroPendienteInDto != null) {
			final PeticionTransaccionTlsmt766_1_1_1 peticion = TransaccionDtoConverter
					.EliminarFicherosPendientesInDtoToPeticion766(eliminarFicheroPendienteInDto);
			try {
				final RespuestaTransaccionTlsmt766_1_1_1 respuestaTransaccion = transaccion766
						.invocar(peticion);
				eliminarFicheroPendienteOutDto = DtoTransaccionConverter
						.RespuestaPeticionEliminarFicheroPendienteOutDto(respuestaTransaccion);
				
			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return eliminarFicheroPendienteOutDto;
	}

	/**
	 * Firmar fichero pendiente.
	 *
	 * @param firmarFicheroPendienteInDto the firmar fichero pendiente in dto
	 * @return the firmar fichero pendiente out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public FirmarFicheroPendienteOutDto firmarFicheroPendiente(
			final FirmarFicheroPendienteInDto firmarFicheroPendienteInDto)
					throws ExcepcionEjecucionAplicacion {
		FirmarFicheroPendienteOutDto firmarFicheroPendOutDto = null;
		if (firmarFicheroPendienteInDto != null) {
			final PeticionTransaccionTlsmt767_1_1_1 peticion = TransaccionDtoConverter
					.FirmarFicherosPendientesInDtoToPeticion767(firmarFicheroPendienteInDto);
			try {
				final RespuestaTransaccionTlsmt767_1_1_1 respuestaTransaccion = transaccion767
						.invocar(peticion);
				firmarFicheroPendOutDto = DtoTransaccionConverter
						.RespuestaPeticionFirmaFicheroPendienteOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return firmarFicheroPendOutDto;
	}

	/**
	 * Consultar firmantes fichero.
	 *
	 * @param consultarFirmatesFicheroInDto the consultar firmates fichero in dto
	 * @return the consultar firmates fichero out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConsultarFirmatesFicheroOutDto consultarFirmantesFichero(
			final ConsultarFirmatesFicheroInDto consultarFirmatesFicheroInDto)
					throws ExcepcionEjecucionAplicacion {
		ConsultarFirmatesFicheroOutDto consultarFirmatesFicheroOutDto = null;
		if (consultarFirmatesFicheroInDto != null) {
			final PeticionTransaccionTlsmt768_1_1_1 peticion = TransaccionDtoConverter
					.ConsultaUsuariosFirmantesInDtoToPeticion768(consultarFirmatesFicheroInDto);
			try {
				final RespuestaTransaccionTlsmt768_1_1_1 respuestaTransaccion = transaccion768
						.invocar(peticion);
				consultarFirmatesFicheroOutDto = DtoTransaccionConverter
						.RespuestaPeticionConsultaUsuariosFirmantesOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return consultarFirmatesFicheroOutDto;
	}

	/**
	 * Consultar nif autorizados firma.
	 *
	 * @param consultarNifAutorizadosFirmaInDto the consultar nif autorizados firma in dto
	 * @return the consultar nif autorizados firma out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConsultarNifAutorizadosFirmaOutDto consultarNifAutorizadosFirma(
			final ConsultarNifAutorizadosFirmaInDto consultarNifAutorizadosFirmaInDto)
					throws ExcepcionEjecucionAplicacion {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * Consultar ficheros pendientes por empresa o nif.
	 *
	 * @param ficherosPendientePorEmpresaONifInDto the ficheros pendiente por empresa o nif in dto
	 * @return the ficheros pendientes empresa o nif out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public FicherosPendientesEmpresaONifOutDto consultarFicherosPendientesPorEmpresaONif(
			final FicherosPendientePorEmpresaONifInDto ficherosPendientePorEmpresaONifInDto)
					throws ExcepcionEjecucionAplicacion {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * Registrar orden pendiente firma.
	 *
	 * @param registrarOrdenPendienteFirmaInDto the registrar orden pendiente firma in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConfirmacionProcesoOutDto registrarOrdenPendienteFirma(
			final RegistrarOrdenPendienteFirmaInDto registrarOrdenPendienteFirmaInDto)
					throws ExcepcionEjecucionAplicacion {
		ConfirmacionProcesoOutDto ordenPendienteFirmaOutDto = null;
		if (registrarOrdenPendienteFirmaInDto != null) {
			final PeticionTransaccionTlsmt775_1_1_1 peticion = TransaccionDtoConverter
					.RegistrarOrdenPendienteFirmaInDtoToPeticion775(registrarOrdenPendienteFirmaInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_1_1 respuestaTransaccion = transaccion775_1_1_1
						.invocar(peticion);
				ordenPendienteFirmaOutDto = DtoTransaccionConverter
						.RespuestaPeticionRegistroOrdenPendienteOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return ordenPendienteFirmaOutDto;
	}

	/**
	 * Registrar fichero pendiente firma.
	 *
	 * @param ficheroPendienteFirmaInDto the fichero pendiente firma in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConfirmacionProcesoOutDto registrarFicheroPendienteFirma(
			final FicheroPendienteFirmaInDto ficheroPendienteFirmaInDto)
					throws ExcepcionEjecucionAplicacion {
		ConfirmacionProcesoOutDto ficheroPendienteFirmaOutDto = null;
		if (ficheroPendienteFirmaInDto != null) {
			final PeticionTransaccionTlsmt775_1_1_2 peticion = TransaccionDtoConverter
					.RegistrarFicheroPendienteFirmaInDtoToPeticion775(ficheroPendienteFirmaInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_1_2 respuestaTransaccion = transaccion775_1_1_2
						.invocar(peticion);
				ficheroPendienteFirmaOutDto = DtoTransaccionConverter
						.RespuestaPeticionRegistroFicheroPendienteOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return ficheroPendienteFirmaOutDto;
	}

	/**
	 * Consultar orden pendiente firma.
	 *
	 * @param ordenPendienteFirmaInDto the orden pendiente firma in dto
	 * @return the orden pendiente firma ref nif out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public OrdenPendienteFirmaRefNifOutDto consultarOrdenPendienteFirma(
			final OrdenPendienteFirmaRefNifInDto ordenPendienteFirmaInDto)
					throws ExcepcionEjecucionAplicacion {
		OrdenPendienteFirmaRefNifOutDto ordenPendienteFirmaNifOutDto = null;
		if (ordenPendienteFirmaInDto != null) {
			final PeticionTransaccionTlsmt775_1_1_3 peticion = TransaccionDtoConverter
					.ConsultarOrdenesPendientesFirmaNifInDtoToPeticion775(ordenPendienteFirmaInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_1_3 respuestaTransaccion = transaccion775_1_1_3
						.invocar(peticion);
				ordenPendienteFirmaNifOutDto = DtoTransaccionConverter
						.RespuestaPeticionOrdenesPendientesFirmaRefNifOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return ordenPendienteFirmaNifOutDto;
	}

	/**
	 * Consultar orden pendiente firma referencia externa.
	 *
	 * @param ordenPendienteFirmaReferenciaExternaInDto the orden pendiente firma referencia externa in dto
	 * @return the orden pendiente firma referencia externa out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public OrdenPendienteFirmaReferenciaExternaOutDto consultarOrdenPendienteFirmaReferenciaExterna(
			final OrdenPendienteFirmaReferenciaExternaInDto ordenPendienteFirmaReferenciaExternaInDto)
					throws ExcepcionEjecucionAplicacion {
		OrdenPendienteFirmaReferenciaExternaOutDto ordenPenFirmaRefExtOutDto = null;
		if (ordenPendienteFirmaReferenciaExternaInDto != null) {
			final PeticionTransaccionTlsmt775_1_2_1 peticion = TransaccionDtoConverter
					.ConsultarOrdenesPendientesFirmaInDtoToPeticion775(ordenPendienteFirmaReferenciaExternaInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_2_1 respuestaTransaccion = transaccion775_1_2_1
						.invocar(peticion);
				ordenPenFirmaRefExtOutDto = DtoTransaccionConverter
						.RespuestaPeticionOrdenesPendientesFirmaRefExternaOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return ordenPenFirmaRefExtOutDto;
	}

	/**
	 * Eliminar orden pendiente firma.
	 *
	 * @param ordenPendienteInDto the orden pendiente in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConfirmacionProcesoOutDto eliminarOrdenPendienteFirma(
			final OrdenPendienteFirmaInDto ordenPendienteInDto)
					throws ExcepcionEjecucionAplicacion {
		ConfirmacionProcesoOutDto eliminarOrdenPendienteOutDtio = null;
		if (ordenPendienteInDto != null) {
			final PeticionTransaccionTlsmt775_1_3_1 peticion = TransaccionDtoConverter
					.EliminarOrdenPendienteInDtoToPeticion775(ordenPendienteInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_3_1 respuestaTransaccion = transaccion775_1_3_1.invocar(peticion);
				eliminarOrdenPendienteOutDtio = DtoTransaccionConverter
						.RespuestaPeticionEliminarOrdenPendienteOutDto(respuestaTransaccion);
				if(eliminarOrdenPendienteOutDtio.getCodigoAviso()!=null && !eliminarOrdenPendienteOutDtio.getCodigoAviso().equals(ConstantesFO.AVISO_HOST_ORDEN_ELIMINADA))
				{
					if(eliminarOrdenPendienteOutDtio.getCodigoAviso().equals(ConstantesFO.DNI_NO_APODERADO) || 
							eliminarOrdenPendienteOutDtio.getCodigoAviso().equals(ConstantesFO.DNI_NO_EXISTE_APODERADO))
					{
						throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.NIF_INCORRECTO_O_NO_VALIDO_OPERACION);
					}
					else
					{
						throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.ERROR_GENERICO_AL_ELIMINAR);
					}
				}
			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return eliminarOrdenPendienteOutDtio;
	}

	/**
	 * Firmar orden pendiente firma.
	 *
	 * @param ordenPendienteInDto the orden pendiente in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConfirmacionProcesoOutDto firmarOrdenPendienteFirma(
			final OrdenPendienteFirmaInDto ordenPendienteInDto)
					throws ExcepcionEjecucionAplicacion {
		ConfirmacionProcesoOutDto firmaOrdenPendienteOutDto = null;
		if (ordenPendienteInDto != null) {
			final PeticionTransaccionTlsmt775_1_4_1 peticion = TransaccionDtoConverter
					.FirmaOrdenPendienteInDtoToPeticion775(ordenPendienteInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_4_1 respuestaTransaccion = transaccion775_1_4_1
						.invocar(peticion);
				firmaOrdenPendienteOutDto = DtoTransaccionConverter
						.RespuestaPeticionFirmaOrdenPendienteOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return firmaOrdenPendienteOutDto;
	}

	/**
	 * Consultar usuarios firmantes orden.
	 *
	 * @param usuariosFirmantesOrdenInDto the usuarios firmantes orden in dto
	 * @return the usuarios firmantes orden out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public UsuariosFirmantesOrdenOutDto consultarUsuariosFirmantesOrden(
			final UsuariosFirmantesOrdenInDto usuariosFirmantesOrdenInDto)
					throws ExcepcionEjecucionAplicacion {
		UsuariosFirmantesOrdenOutDto usuariosFirOrdenOutDto = null;
		if (usuariosFirmantesOrdenInDto != null) {
			final PeticionTransaccionTlsmt775_1_5_1 peticion = TransaccionDtoConverter
					.ConsultaUsuariosFirmantesOrdenInDtoToPeticion775(usuariosFirmantesOrdenInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_5_1 respuestaTransaccion = transaccion775_1_5_1
						.invocar(peticion);
				usuariosFirOrdenOutDto = DtoTransaccionConverter
						.RespuestaPeticionConsultaUsuarioFirmaOrdenOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return usuariosFirOrdenOutDto;
	}

	/**
	 * Anular firma fichero.
	 *
	 * @param firmaFicheroInDto the firma fichero in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConfirmacionProcesoOutDto anularFirmaFichero(
			final FirmaFicheroInDto firmaFicheroInDto)
					throws ExcepcionEjecucionAplicacion {
		ConfirmacionProcesoOutDto firmaFichOutDto = null;
		if (firmaFicheroInDto != null) {
			final PeticionTransaccionTlsmt775_1_6_1 peticion = TransaccionDtoConverter
					.AnularUltimaFirmaInDtoToPeticion775(firmaFicheroInDto);
			try {
				final RespuestaTransaccionTlsmt775_1_6_1 respuestaTransaccion = transaccion775_1_6_1
						.invocar(peticion);
				firmaFichOutDto = DtoTransaccionConverter
						.RespuestaPeticionAnularUltimaFirmaOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return firmaFichOutDto;
	}

	/**
	 * Consultar detalle fichero.
	 *
	 * @param detalleFicheroInDto the detalle fichero in dto
	 * @return the detalle fichero out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public DetalleFicheroOutDto consultarDetalleFichero(
			final DetalleFicheroInDto detalleFicheroInDto)
					throws ExcepcionEjecucionAplicacion {
		DetalleFicheroOutDto detalleOutDto = null;
		if (detalleFicheroInDto != null) {
			final PeticionTransaccionTlsmt765_1_1_1 peticion = TransaccionDtoConverter
					.ConsultaDetalleFicheroInDtoToPeticion765(detalleFicheroInDto);
			try {
				final RespuestaTransaccionTlsmt765_1_1_1 respuestaTransaccion = transaccion765
						.invocar(peticion);
				detalleOutDto = DtoTransaccionConverter
						.RespuestaPeticionConsultaDetalleFicherosOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return detalleOutDto;
	}

	/**
	 * Consultar situacion fichero.
	 *
	 * @param consultaSituacionFicheroInDto the consulta situacion fichero in dto
	 * @return the consulta situacion ficheros out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConsultaSituacionFicherosOutDto consultarSituacionFichero(
			final ConsultaSituacionFicherosInDto consultaSituacionFicheroInDto)
					throws ExcepcionEjecucionAplicacion {
		ConsultaSituacionFicherosOutDto situacionOutDto = null;
		if (consultaSituacionFicheroInDto != null) {
			final PeticionTransaccionTlsmt592_1_1_1 peticion = TransaccionDtoConverter
					.ConsultaSituacionFicherosInDtoToPeticion592(consultaSituacionFicheroInDto);
			try {
				final RespuestaTransaccionTlsmt592_1_1_1 respuestaTransaccion = transaccion592
						.invocar(peticion);
				
				com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt592_1_1_1.Formato1 formato1;
				com.bbva.kyfb.kyfbdaohostimpl.servicios.host.tlsmt592_1_1_1.Formato2 formato2;
				
				String retorno = null;
				
				if(respuestaTransaccion.getFormato()==1){
					formato1 = respuestaTransaccion.getCuerpoComoFormato1();
					retorno = formato1.getRetornoSstt();
				}else if(respuestaTransaccion.getFormato()==2){				
					formato2 = respuestaTransaccion.getCuerpoComoFormato2();
					retorno = formato2.getRetornoSstt();					
				}	
				
				if(retorno!=null){
					lanzarExcepcionTxNoBloqueante(retorno);
				}
				
				situacionOutDto = DtoTransaccionConverter.RespuestaPeticionConsultaSituacionFicherosOutDto(respuestaTransaccion);
				
			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return situacionOutDto;
	}

	/**
	 * Consultar datos cliente.
	 *
	 * @param consultaDatosInDto the consulta datos in dto
	 * @return the datos cliente dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public DatosClienteDto consultarDatosCliente(
			final ConsultaDatosClienteInDto consultaDatosInDto)
					throws ExcepcionEjecucionAplicacion {
		DatosClienteDto datosClienteDto = null;
		if (consultaDatosInDto != null) {
			final PeticionTransaccionTlsmt298_1_1_1 peticion = TransaccionDtoConverter
					.ConsultaProductosInDtoToPeticion298(consultaDatosInDto);
			try {
				final RespuestaTransaccionTlsmt298_1_1_1 respuestaTransaccion = transaccion298
						.invocar(peticion);
				datosClienteDto = DtoTransaccionConverter
						.RespuestaPeticionDatosClienteOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}

		return datosClienteDto;
	}

	/**
	 * Consulta aptitud mifid.
	 *
	 * @param consultaAptitudMifidInDto the consulta aptitud mifid in dto
	 * @return the consulta aptitud mifid out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	@Override
	public ConsultaAptitudMifidOutDto consultaAptitudMifid(
			final ConsultaAptitudMifidInDto consultaAptitudMifidInDto)
					throws ExcepcionEjecucionAplicacion {
		ConsultaAptitudMifidOutDto consultaAptitudMifidOutDto = null;
		if (consultaAptitudMifidInDto != null) {
			final PeticionTransaccionInmft010_1_1_4 peticion = TransaccionDtoConverter
					.ConsultaAptitudMifidToPeticion010(consultaAptitudMifidInDto);
			try {
				final RespuestaTransaccionInmft010_1_1_4 respuestaTransaccion = transaccion010_4
						.invocar(peticion);
				consultaAptitudMifidOutDto = DtoTransaccionConverter
						.RespuestaPeticionConsultaAptitudMifidOutDto(respuestaTransaccion);

			} catch (final ExcepcionTransaccion e) {
				throw new ExcepcionEjecucionAplicacion(
						Errores_kyfb_servicios.SERVICIO_NO_DISPONIBLE, e);
				// TODO: Catalogo de errores de transaccion
			}
		}
		return consultaAptitudMifidOutDto;
	}

	private void lanzarExcepcionTxNoBloqueante(String retorno){
		if(retorno.equals(ConstantesFO.ERROR_TX_DEMASIADAS_RESPUESTAS)){
			throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.ERROR_AL_LANZAR_TX_DEMASIADAS_RESPUESTAS);
		}else if(retorno.equals(ConstantesFO.ERROR_TX_ERROR_BBDD)){
			throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.ERROR_AL_LANZAR_TX_ERROR_EN_BBDD);
		}else if(retorno.equals(ConstantesFO.ERROR_TX_INFORMACION_INEXISTENTE)){
			throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.ERROR_AL_LANZAR_TX_INFORMACION_INEXISTENTE);
		}		
	}
	
}
